import java.awt.event.*;

import javax.swing.*;


public class Grafico extends JPanel{
	
	/**
	 * Atributos
	 */
	private JButton boton;
	private JLabel label;
	private JTextField edit;
	private Postfix evaluar;
	
	
	/**
	 * Constructor de la clase
	 */
	public Grafico()
	{
		
		/**
		 * Inicializa los atributos
		 */
		boton= new JButton("Calcular");
		label=new JLabel("Resultado: ");
		edit=new JTextField("Ingrese su ecuación aquí...");
		evaluar=new Postfix();
		
		edit.setSize(10, 30);
		
		/**
		 * Agrega los objetos al panel
		 */
		add(edit);
		add(boton);
		add(label);
		
		boton.addActionListener(new BotonListener());
		
	}
	
	
	/**
	 * Listener del botón
	 * @author silvis
	 *
	 */
	private class BotonListener implements ActionListener
	{
		public void actionPerformed(ActionEvent event)
		{
			
			/*
			 * Si el stack esta no esta vacío entonces lo
			 * inicializa
			 */
			if(evaluar.empty()==false)
				evaluar=new Postfix();
			
			/*
			 * Mete la expresión en el stack y la evalua
			 * revisa que el resultado sea válido y si no
			 * muestra error.
			 */
			evaluar.setExpresion(edit.getText());
			evaluar.meterStack();
			if(evaluar.resultado()==null)
				label.setText("ERROR!!!");
			else
				label.setText("Resultado: "+evaluar.resultado());
			revalidate();
			
			
		}
	}
	
	
	

}
